#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.basic.module.operate.mapper;

import ${package}.common.bean.po.Operate;
import ${package}.common.bean.vo.QueryBean;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Description: 无法补充
 *
 * @author wupanhua
 * @date 2019/8/6 15:28
 *
 * <pre>
 *              ${copyright}
 *      Copyright (c) 2019. All Rights Reserved.
 * </pre>
 */
@Repository
public interface OperateMapper {

    /**
     * Description:
     * <根据菜单主键获取链接操作>
     * @author wupanhua
     * @date 18:07 2019/8/6
     * @param menuKey 1
     * @return java.util.List<Operate>
     **/
    List<Operate> queryOperateByMenuKey(Long menuKey);

    /**
     * Description:
     * <根据主键获取操作>
     * @author wupanhua
     * @date 18:08 2019/8/6
     * @param key 1
     * @return Operate
     **/
    Operate queryOperateByOperateKey(Long key);

    /**
     * Description:
     * <获取操作管理分页列表>
     * @author pig
     * @date 18:08 2019/8/6
     * @param queryBean 1
     * @return java.util.List<Operate>
     **/
    List<Operate> queryOperteByLimit(QueryBean queryBean);

    /**
     * Description:
     * <新增操作关系信息>
     * @author pig
     * @date 18:09 2019/8/6
     * @param operate 1
     **/
    void addOperate(Operate operate);

    /**
     * Description:
     * <根据主键更新操作管理信息>
     * @author pig
     * @date 18:11 2019/8/6
     * @param operate 1
     **/
    void updateOperateByKey(Operate operate);

    /**
     * Description:
     * <根据主键删除操作管理信息>
     * @author pig
     * @date 18:12 2019/8/6
     * @param key 1
     **/
    void deleteOperateByKey(Long key);

    /**
     * Description:
     * <批量删除操作管理>
     * @author pig
     * @date 18:12 2019/8/6
     * @param free 1
     **/
    void updateOperateStatusDeleteByKeys(List<Long> free);

    /**
     * Description:
     * <根据主键批量查询操作管理>
     * @author pig
     * @date 18:12 2019/8/6
     * @param occupied 1
     * @return java.util.List<Operate>
     **/
    List<Operate> findOperatesByKeys(List<Long> occupied);

    /**
     * Description:
     * <启用/禁用>
     * @author pig
     * @date 18:13 2019/8/6
     * @param operate 1
     **/
    void updateOperateDisableOrEnable(Operate operate);

    /**
     * Description:
     * <根据编码查询操作>
     * @author pig
     * @date 18:13 2019/8/6
     * @param code 1
     * @return java.util.List<Operate>
     **/
    List<Operate> findOperatesByCode(String code);

    /**
     * Description:
     * <根据name查询操作>
     * @author pig
     * @date 18:13 2019/8/6
     * @param name 1
     * @return Operate
     **/
    Operate findOperatesByName(String name);
    /**
     * Description:
     * <根据name查询操作 筛除传入id的数据>
     * @author pig
     * @date 18:14 2019/8/6
     * @param operate 1
     * @return Operate
     **/
    Operate findOperatesByNameOrNotInId(Operate operate);

    /**
     * Description:
     * <根据编码查询操作 筛除传入id的数据>
     * @author pig
     * @date 18:15 2019/8/6
     * @param operate 1
     * @return java.util.List<Operate>
     **/
    List<Operate> findOperatesByCodeOrNotInId(Operate operate);
}
